home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The 640 MEG Shareware Studio 5
/
The 640 Meg Shareware Studio CD-ROM Volume V (Data Express)(1994).ISO
/
amiga
/
jmtl028c.lha
/
h
/
trap.h
< prev
Wrap
C/C++ Source or Header
|
1992-09-11
|
7KB
|
183 lines
/***************************************************************************/
/* Traplist.library::Master Header File */
/*-------------------------------------------------------------------------*/
/* ⌐ Copyright 1990-92 by Martin J. Laubach and Maximilian Hantsch */
/* */
/* All rights reserved */
/* */
/* Inspired by structures by Juergen Hermann */
/* */
/***************************************************************************/
/*
* $Header: Sybil:nl/RCS/nl.h,v 1.27 92/08/28 11:59:16 mjl Exp $
*/
/*-------------------------------------------------------------------------*/
#ifndef NL_NL_H
#define NL_NL_H 1
#define TRAPLIST_NAME "traplist.library"
#define TRAPLIST_VER 5
/*-------------------------------------------------------------------------*/
#define NL_VERBATIM 0x8000 /* Don't translate phone numbers in search */
/* A FindNL() with that flag will give you the phone number */
/* as it is listed in the nodelist */
#define NL_PARSE_INVALID_CHAR -1 /* Returned by NLParseAddr */
#define NL_PARSE_INVALID_NUMBER -2
/*-------------------------------------------------------------------------*/
/* defined/reserved Tag IDs */
#define ID_PASS 0x50415353 /* password entry */
#define ID_TCNF 0x55434E46 /* TD config entry */
#define ID_ACCT 0x41434354 /* accounting entry */
/*-------------------------------------------------------------------------*/
/* Use these macros in NLEnumNode() */
#define IS_ZONE(ad,re) (ad->Zone == ad->Net && ad->Net == re && !ad->Node && !ad->Point)
#define IS_NET(ad,re) (!ad->Node && !ad->Point)
#define IS_NODE(ad,re) (ad->Node && !ad->Point)
#define IS_POINT(ad,re) (ad->Point)
#define IS_REGION(ad,re) (!ad->Node && !ad->Point && re == ad->Net)
#define IS_HUB(ad,hub) (!ad->Point && ad->Node == hub)
/// Added IS_HUB macro
/// Removed some of the reserved fields
/*-------------------------------------------------------------------------*/
typedef struct
{
UWORD Zone;
UWORD Net;
UWORD Node;
UWORD Point;
} Addr;
/*-------------------------------------------------------------------------*/
/* This structure is returned by NLFind() and NLIndexFind() */
typedef struct
{
Addr Node; /* node address */
ULONG Reserved0;
UWORD Region; /* region (0 if none) */
UWORD Hub; /* node # of this node's HUB (0 if none) */
char *System; /* node name */
char *Sysop; /* sysop name */
char *Phone; /* phone number */
char *City; /* city and state */
char *Passwd; /* password */
char *Flags; /* nodelist flags */
LONG Cost; /* cost */
UWORD BaudRate; /* baud rate */
LONG ID; /* unique ID (offset into nodeindex) */
ULONG Reserved1; /* New for version 5 */
ULONG Reserved2; /* For compatibility with nodelist.library */
ULONG Reserved3;
UBYTE Type; /* Entry type */
UBYTE Pad0;
} NodeDesc;
/*-------------------------------------------------------------------------*/
#define NL_ENTRY_NODE 0
#define NL_ENTRY_HOST 1
#define NL_ENTRY_HOLD 2
#define NL_ENTRY_HUB 3
#define NL_ENTRY_PVT 4
#define NL_ENTRY_POINT 5
#define NL_ENTRY_ZONE 6
#define NL_ENTRY_REGION 7
#define NL_ENTRY_DOWN 8
#define NL_ENTRY_MAX 9
/*-------------------------------------------------------------------------*/
#ifndef NL_PRIVATE
typedef void *Extra;
typedef void *NodeList;
#ifdef __STDC__
void LibArexx(void);
NodeList NLOpen(char *, ULONG);
void NLClose(NodeList);
NodeDesc *NLFind(NodeList, Addr *, ULONG);
int NLAddrComp(Addr *, Addr *);
void NLFreeNode(NodeDesc *);
NodeDesc *NLIndexFind(NodeList, Addr *, ULONG);
Extra ExtraOpen(char *);
void *ExtraFromNL(NodeList);
void ExtraClose(Extra);
void *ExtraFind(Extra, Addr *addr, ULONG, ULONG *);
void *ExtraFindLock(Extra, Addr *addr, ULONG, ULONG *);
BOOL ExtraPut(Extra, Addr *, ULONG, int, void *);
BOOL ExtraChange(Extra, Addr *, ULONG, ULONG, void *);
BOOL ExtraDel(Extra, void *);
BOOL ExtraFlush(Extra);
void ExtraLock(Extra);
void ExtraUnlock(Extra);
LONG ExtraEnumNode(Extra, BOOL (*)(Addr *, void *), void *);
LONG ExtraEnumTag(Extra, Addr *, BOOL (*)(void *, ULONG, ULONG, void *), void *);
LONG NLEnumNode(NodeList, LONG, Addr *, BOOL (*)(Addr *, ULONG, void *), void *);
LONG NLParseAddr(Addr *, char *, Addr *);
BOOL NLSubmitNewIndex(NodeList, char *, char *);
void ExtraLockTag(Extra, void *);
void ExtraUnlockTag(Extra, void *);
void ExtraTagDate(Extra, void *, struct DateStamp *);
char **NLGetNodelistNames(NodeList);
void NLFreeNodelistNames(NodeList, char **);
#endif /* STDC */
#ifdef LATTICE
/*pragma libcall NodelistBase LibArexx 1E 9802*/
#pragma libcall NodelistBase NLOpen 24 0802
#pragma libcall NodelistBase NLClose 2A 801
#pragma libcall NodelistBase NLFind 30 09803
#pragma libcall NodelistBase NLFreeNode 36 801
#pragma libcall NodelistBase NLAddrComp 3C 9802
#pragma libcall NodelistBase NLIndexFind 42 09803
#pragma libcall NodelistBase ExtraFromNL 48 801
#pragma libcall NodelistBase ExtraOpen 4E 801
#pragma libcall NodelistBase ExtraClose 54 801
#pragma libcall NodelistBase ExtraFind 5A A09804
#pragma libcall NodelistBase ExtraPut 60 A109805
#pragma libcall NodelistBase ExtraDel 66 9802
/*pragma libcall NodelistBase ObsoleteOldIndexFind 6C 09803*/
#pragma libcall NodelistBase ExtraFlush 72 801
#pragma libcall NodelistBase ExtraLock 78 801
#pragma libcall NodelistBase ExtraUnlock 7E 801
#pragma libcall NodelistBase ExtraEnumNode 84 A9803
#pragma libcall NodelistBase ExtraChanged 8A 801
#pragma libcall NodelistBase ExtraEnumTag 90 BA9804
#pragma libcall NodelistBase NLEnumNode 96 BA90805
#pragma libcall NodelistBase NLParseAddr 9C A9803
#pragma libcall NodelistBase NLSubmitNewIndex A2 A9803
#pragma libcall NodelistBase ExtraLockTag A8 9802
#pragma libcall NodelistBase ExtraUnlockTag AE 9802
#pragma libcall NodelistBase ExtraChange B4 A109805
#pragma libcall NodelistBase ExtraFindLock BA A09804
/*pragma libcall NodelistBase NLNodelistLibrary0 C0 0*/
/*pragma libcall NodelistBase NLNodelistLibrary1 C6 0*/
#pragma libcall NodelistBase ExtraTagDate CC A9803
#pragma libcall NodelistBase NLGetNodelistNames D2 801
#pragma libcall NodelistBase NLFreeNodelistNames D8 9802
#endif /* SASC */
#endif /* PRIVATE */
#endif /* NL.H */
/*-------------------------------------------------------------------------*/
/* ID: 1.1@6547 Last Changed: 11 Sep 1992 11:04:16 by max */